// 封装分类数据业务相关代码

import { ref } from "vue";
import { useRoute } from "vue-router";
import { getCategoryAPI } from "@/apis/category.js";
import { onBeforeRouteUpdate } from "vue-router";

export function useCategory() {
    const categoryData = ref({})

    const route = useRoute();

    // 获取分类数据
    const getCategory = async (id = route.params.id) => { // 指定默认参数,用于初始化的适配(第一次加载时)
        await getCategoryAPI(id).then(res => { // 传入路由参数id  //router.index.js  path: '/category/:id', // 占位id参数
            categoryData.value = res.result;
        });
    }

    getCategory();
    // 路由更新时重新获取数据
    onBeforeRouteUpdate((to) => { // to 对象包含去往页面的路由参数。穿to的原因就是这个hook函数是跟跳转之前调用的
        getCategory(to.params.id);
    })

    return {
        categoryData
    }
}